package Thread;/*
 *
 *@author:    Xavier
 *@data:      2024 - 01 - 12
 *@time:      15:44
 *
 */


// 线程的状态
/*
* NEW：安排了工作，还为开始行动；线程对象创建了，但内核中的线程还没有
* RUNNABLE：可工作的，又可以分成正在工作中和即将开始工作；处于就绪状态
* BLOCKED：这几个都表示排队等待其他事情            -> 因为锁产生了阻塞
* WAITING：这几个都表示排队等待其他事情            -> 因为调用了wait产生了阻塞
* TIMED_WAITING：这几个都表示排队等待其他事情      -> 因为sleep产生了阻塞
* TERMINATED：工作完成了；内核中的线程已经没有了，但线程对象还存在
* */



public class Demo11 {
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(()->{
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });

        System.out.println(t.getState());//NEW

        t.start();
        t.join();

        System.out.println(t.getState());//TERMINATED
    }
}
